home *** CD-ROM | disk | FTP | other *** search
/ Enter 2006 October / Enter 10 2006.iso / boot / isolinux / rescue / res / linuxrc
Encoding:
Text File  |  2006-07-23  |  2.7 KB  |  126 lines

  1. #!/bin/sh
  2.  
  3. PATH=/usr/sbin:/usr/bin:/sbin:/bin
  4.  
  5. SATA_MODULES="libata.ko sd_mod.ko sata_mv.ko sata_qstor.ko sata_nv.ko sata_promise.ko sata_sil.ko sata_sil24.ko sata_sis.ko \
  6. sata_svw.ko sata_sx4.ko sata_uli.ko sata_via.ko sata_vsc.ko ata_piix"
  7.  
  8. SCSI_MODULES="libata.ko sd_mod.ko aacraid.ko aic7xxx.ko BusLogic.ko \
  9. NCR53c406a.ko initio.ko \
  10. aha1740.ko aha1542.ko aha152x.ko \
  11. atp870u.ko dtc.ko eata.ko fdomain.ko gdth.ko \
  12. megaraid.ko pas16.ko psi240i.ko \
  13. qlogicfas.ko \
  14. t128.ko tmscsim.ko u14-34f.ko ultrastor.ko wd7000.ko \
  15. a100u2w.ko 3w-xxxx.ko"
  16.  
  17. MD_MODULES="md-mod.ko dm-mod.ko linear.ko xor.ko raid0.ko raid1.ko raid10.ko \ 
  18. raid5.ko"
  19.  
  20. mount -t proc none /proc
  21. mkdir -p /dev/pts
  22. mount -t devpts none /dev/pts
  23.  
  24.  
  25. # Disable kernel messages to console:
  26. echo "0" > /proc/sys/kernel/printk
  27.  
  28. DM="no"
  29.  
  30. CMDLINE="`cat /proc/cmdline`"
  31. for x in $CMDLINE
  32. do
  33.     if test "$x" = "scsi" ; then
  34.     SCSI="yes"
  35.         elif test "$x" = "sata" ; then
  36.     SATA="yes"
  37.     elif  test "$x" = "md" ; then 
  38.         MD="yes"
  39.     fi
  40. done
  41.  
  42. XFS="yes"
  43. JFS="yes"
  44. REISER4="yes"
  45.  
  46. if ! cat /proc/cmdline | grep root ; then
  47. echo "NO root parameter specified !!! You can now reboot your machine..."
  48. exit 0;
  49.  
  50. else
  51.  
  52. loadmodules(){
  53. TYPE=$TYPEX
  54. for i in "$@"; do
  55. echo  "Probing ${TYPE}... $i"
  56. if test -f /modules/storage/$i && insmod  /modules/storage/$i >/dev/null 2>&1
  57. then
  58. echo "Found ${TYPE} device(s) handled by $i."
  59. case "$TYPE" in scsi|SCSI) FOUND_SCSI="yes"; ;; esac
  60. fi
  61. done
  62. }
  63.  
  64. insmod /modules/storage/cdrom.ko >/dev/null 2>&1
  65. insmod /modules/storage/ide-disk.ko >/dev/null 2>&1
  66. insmod /modules/fs/jbd.ko  >/dev/null 2>&1
  67. insmod /modules/fs/ext3.ko >/dev/null 2>&1
  68. insmod /modules/fs/reiserfs.ko >/dev/null 2>&1
  69.  
  70. if test "$MD" = "yes" ; then
  71. TYPEX="MD"
  72. loadmodules $MD_MODULES
  73. fi
  74.  
  75. if test "$SATA" = "yes" ; then
  76. TYPEX="SATA"
  77. loadmodules $SATA_MODULES
  78. fi
  79.  
  80. if test "$SCSI" = "yes" ; then
  81. TYPEX="SCSI"
  82. loadmodules $SCSI_MODULES
  83. fi
  84.  
  85.  
  86.  
  87. if test "$REISER4" = "yes" ; then
  88.     insmod /modules/fs/zlib_deflate.ko >/dev/null 2>&1 
  89.     insmod /modules/fs/zlib_inflate.ko >/dev/null 2>&1 
  90.     insmod /modules/fs/reiser4.ko >/dev/null 2>&1 
  91. fi
  92.  
  93.  
  94. if test "$JFS" = "yes" ; then
  95.     insmod /modules/fs/jfs.ko >/dev/null 2>&1 
  96. fi
  97.  
  98. if test "$XFS" = "yes" ; then
  99.     insmod /modules/fs/exportfs.ko >/dev/null 2>&1 
  100.     insmod /modules/fs/xfs.ko >/dev/null 2>&1
  101. fi
  102.  
  103. for name in `cat /proc/cmdline`; do
  104.     echo $name | grep '^root=' > /dev/null
  105.     if test $? -eq 0 ; then
  106.      root=`expr "$name" : '.*=\(.*\)'`
  107.      break
  108.     fi
  109. done
  110. echo 0x0100 > /proc/sys/kernel/real-root-dev
  111. mount -o ro $root /mnt
  112.  
  113. cd /mnt
  114.  
  115. if ! test -d initrd ; then
  116. mount -o remount,rw $root /mnt
  117. mkdir initrd
  118. mount -o remount,ro $root /mnt
  119. fi 
  120.  
  121. umount /proc 
  122. umount /dev/pts
  123. pivot_root . initrd
  124. exec /initrd/bin/chroot . sh -c 'umount /initrd; exec /sbin/init' \
  125. < /dev/console > /dev/console 2>&1
  126. fi